package com.ruoyi.fee.mapper;

import java.util.List;
import java.util.Map;

import com.ruoyi.fee.domain.PropertyPayment;

/**
 * 缴费记录Mapper接口
 * 
 * @author ruoyi
 * @date 2025-10-27
 */
public interface PropertyPaymentMapper 
{
    /**
     * 查询缴费记录
     * 
     * @param paymentId 缴费记录主键
     * @return 缴费记录
     */
    public PropertyPayment selectPropertyPaymentByPaymentId(Long paymentId);

    /**
     * 查询缴费记录列表
     * 
     * @param propertyPayment 缴费记录
     * @return 缴费记录集合
     */
    public List<PropertyPayment> selectPropertyPaymentList(PropertyPayment propertyPayment);

    /**
     * 新增缴费记录
     * 
     * @param propertyPayment 缴费记录
     * @return 结果
     */
    public int insertPropertyPayment(PropertyPayment propertyPayment);

    /**
     * 修改缴费记录
     * 
     * @param propertyPayment 缴费记录
     * @return 结果
     */
    public int updatePropertyPayment(PropertyPayment propertyPayment);

    /**
     * 删除缴费记录
     * 
     * @param paymentId 缴费记录主键
     * @return 结果
     */
    public int deletePropertyPaymentByPaymentId(Long paymentId);

    /**
     * 批量删除缴费记录
     * 
     * @param paymentIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deletePropertyPaymentByPaymentIds(Long[] paymentIds);

    // 根据账单ID查询缴费记录
    PropertyPayment selectByBillId(Long billId);

    // 按月份统计缴费金额
    List<Map<String, Object>> selectMonthlyPayment(String year);

    // 根据支付单号查询
    PropertyPayment selectByPaymentNo(String paymentNo);

    List<PropertyPayment> selectByBillIds(List<Long> billIdList);

    PropertyPayment selectByReceiptNo(String receiptNo);
}
